package com.ldy.chapter15;

import java.lang.reflect.Array;

public class GenericArrayTypeToken<T> {
    private T[] array;

    /**
     * 类型标记Class<T>传递到构造器中，一边从擦除中恢复
     * @param type
     * @param size
     */
    public GenericArrayTypeToken(Class<T> type,int size){
        array =(T[]) Array.newInstance(type,size);
    }
    public void put(int index,T item){
        array[index] =item;
    }
    public T get(int index){
        return array[index];
    }
    public T[] rep(){
        return array;
    }
    public static void main(String[] args) {
        final GenericArrayTypeToken<Integer> array = new GenericArrayTypeToken<Integer>(Integer.class,10);
        final Integer[] rep = array.rep();
    }
}
